// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.chimi.service;

import com.liuxinlong.modules.entity.BarCard;
import com.liuxinlong.modules.entity.BarComment;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 论坛管理服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022-07-07
 */
public interface BarManageService {
    /**
     * 分页查询板块发帖信息
     *
     * @param queryParam 请求信息
     * @return 板块发帖信息列表
     */
    List<Map<String, Object>> pageCard(Map<String, Object> queryParam);

    /**
     * 查询板块帖子总数
     *
     * @param queryParam 请求信息
     * @return 板块帖子总数
     */
    int getCardCount(Map<String, Object> queryParam);

    /**
     * 置顶帖子信息
     *
     * @param id 帖子id
     */
    void toppingCard(String id);

    /**
     * 更新帖子信息
     *
     * @param barCard 帖子信息
     */
    void updateCard(BarCard barCard);

    /**
     * 删除帖子信息
     *
     * @param id 帖子id
     */
    void deleteCard(String id);

    /**
     * 审核帖子信息
     *
     * @param id          帖子id
     * @param result      审核结果
     * @param opinion     审核意见
     * @param syncMessage 同步消息
     * @param fineFlag    精品贴标识
     */
    void examineCard(String id, int result, String opinion, int syncMessage, int fineFlag);

    /**
     * 分页查询发帖点赞信息
     *
     * @param queryParam 请求信息
     * @return 发帖点赞信息列表
     */
    List<Map<String, Object>> pageCardThumb(Map<String, Object> queryParam);

    /**
     * 查询发帖点赞信息总数
     *
     * @param queryParam 请求信息
     * @return 发帖点赞信息总数
     */
    int getCardThumbCount(Map<String, Object> queryParam);

    /**
     * 分页查询论坛评论信息
     *
     * @param queryParam 请求信息
     * @return 论坛评论信息列表
     */
    List<Map<String, Object>> pageComment(Map<String, Object> queryParam);

    /**
     * 查询论坛评论总数
     *
     * @param queryParam 请求信息
     * @return 论坛评论总数
     */
    int getCommentCount(Map<String, Object> queryParam);

    /**
     * 置顶论坛评论信息
     *
     * @param id 论坛评论id
     */
    void toppingComment(String id);

    /**
     * 更新论坛评论信息
     *
     * @param barComment 论坛评论信息
     */
    void updateComment(BarComment barComment);

    /**
     * 删除论坛评论信息
     *
     * @param id 论坛评论id
     */
    void deleteComment(String id);

    /**
     * 审核评论信息
     *
     * @param id     评论id
     * @param result 审核结果
     */
    void examineComment(String id, int result);

    /**
     * 导出用户发帖信息
     * @param queryParam 请求信息
     * @param response response
     */
    void exportCardInfo(Map<String, Object> queryParam, HttpServletResponse response);

    /**
     * 导出用户评论信息
     *
     * @param queryParam 请求信息
     * @param response   response
     */
    void exportCommentInfo(Map<String, Object> queryParam, HttpServletResponse response);

}
